package org.plex.task;

import java.util.List;

import org.plex.model.TaskACL;

public interface CreateTaskInfo {
	void setTaskItems(List<? extends FormInstance> FormInstanceList);

	void setDeadlineInstructions(String instructions);

	void setDeadlineRouteName(String routeName);

	void setLongLivedInvocationId(String longLivedInvocationId);

	void setReminderInstructions(String reminderInstructions);

	void setReminderRepeatMinutes(long reminderRepeatMinutes);

	void showAttachments(boolean isShowAttachments);

	void copyAttachments(boolean isCopyAttachments);

	void setAttachmentDocumentList(List attachmentDocumentList);

	void setAssignTo(org.plex.task.ParticipantInfo participantInfo);

	void setEscalateTo(org.plex.task.ParticipantInfo participantInfo);

	void setActionId(long actionId);

	void setProcessInstanceId(long processInstanceId);

	void setProcessName(String processName);

	void setInstructions(String instructions);

	void setDecription(String description);

	void setStepName(String stepName);

	void setTaskACLs(List<TaskACL> taskACLList);

	void addACLsForSharedQueues(boolean isAddACLsForSharedQueues);

	void isStartTask(boolean isStartTask);

	void setDefaultACLs(TaskACL taskACL);

	void setRouteList(List<String> routeList);

	void setSelectedRoute(String selectedRoute);

	void setRouteSelectionRequired(boolean isRequired);

	void setForwardGroupId(String forwardGroupId);

	void setForwardGroup(String services, String groupName);

	void setPriority(short priority);

	void setOutOfOfficeEligible(boolean isOutofOffice);

	void setOutOfOfficeEligibleEscalations(
			boolean isOutOfOfficeEligibleEscalations);

	void setDeadlineInfo(TaskTimerInfo taskTimerInfo);

	void setEscalationInfo(TaskTimerInfo taskTimerInfo);

	void setFirstReminderInfo(TaskTimerInfo takTaskTimerInfo);

	void setRepeatReminderInfo(TaskTimerInfo taskTimerInfo);
}
